맨위로가기

워치독 타이머

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

워치독 타이머는 시스템의 오작동을 감지하고 복구하기 위해 사용되는 전자 타이머이다. 정상 작동 중인 시스템은 주기적으로 워치독 타이머를 재가동(kicking the dog)하며, 이는 특정 메모리 포트에 값을 쓰거나 특정 명령어를 실행하는 방식으로 이루어진다. 워치독 타이머는 단일 타이머를 사용하는 단단계 워치독과 여러 타이머를 직렬로 연결한 다단계 워치독으로 나뉘며, 시간 간격은 고정 또는 프로그래밍 가능하며 10밀리초에서 1분 이상까지 다양하다. 워치독 타이머는 프로세서 리셋, 안전 모드 활성화, 시스템 상태 정보 기록 등 다양한 시정 조치를 취할 수 있으며, 임베디드 시스템, 로봇, 샌드박스, 실시간 운영 체제 등 다양한 분야에서 활용된다.

더 읽어볼만한 페이지

  • 임베디드 시스템 - 로봇공학
    로봇공학은 기계적 구조, 전기적 부품, 소프트웨어로 이뤄진 로봇의 설계, 제작, 운용 및 응용에 관한 학문 분야로, 산업, 의료, 우주 탐사 등 다양한 분야에서 활용되며 인간-로봇 상호작용 및 로봇의 자율성 향상 연구가 진행 중이다.
  • 임베디드 시스템 - 허니웰
    허니웰은 1885년 설립된 기업으로, 항공우주, 빌딩 자동화, 안전 및 생산성 솔루션, 성능 소재 및 기술 분야에서 사업을 영위하며, 군사 기술 개발 및 펜탁스 카메라 수입업체로 활동했고, 환경 문제 관련 비판을 받기도 한다.
워치독 타이머
개요
종류전자 회로, 소프트웨어 루틴
목적컴퓨터 시스템의 오류 감지 및 복구
작동 원리
기본 원리정기적인 신호 감지 실패 시 시스템 재시작
신호 형태소프트웨어 신호
하드웨어 신호
감지 방법타이머 만료 또는 특정 조건 불만족
활용 분야
임베디드 시스템오류 발생 시 시스템 자동 재시작
산업 자동화무인 시스템의 안정성 확보
컴퓨터 시스템서버 및 네트워크 장비의 자동 복구
구현 방법
하드웨어 워치독 타이머외부 회로를 이용한 시스템 감시 및 재시작
소프트웨어 워치독 타이머소프트웨어 루틴을 이용한 시스템 감시 및 재시작
장점 및 단점
장점시스템 다운 시 자동 복구 가능
단점오작동 시 시스템 재시작으로 인한 데이터 손실 가능성
추가 정보
오동작 방지워치독 타이머의 오작동을 방지하기 위한 추가 메커니즘 필요
관련 기술실시간 운영 체제 (RTOS)

2. 구조 및 작동

워치독 타이머는 사람이 즉각 대응하기 어려운 임베디드 시스템이나 기타 컴퓨터 제어 장비에서 주로 사용된다. 이러한 시스템은 멈춤(freezing) 상태가 발생했을 때 자체적으로 재부팅할 수 있어야 한다. 예를 들어, 우주 탐사선과 같이 사람이 접근할 수 없는 원격 임베디드 시스템은 오류 발생 시 스스로 복구하지 못하면 영구적으로 작동 불능 상태가 될 수 있다. 로봇이나 기타 자동화 기계에서도 컴퓨터 오류는 장비 손상이나 부상으로 이어질 수 있으므로, 워치독 타이머가 필수적이다.

워치독 타이머는 화성 탐사 로버와 같은 원격 자동화 시스템에 필수적이다.


워치독 타이머는 정상 작동 중인 컴퓨터에서 소프트웨어 실행 시간을 감시하고 제한하는 데에도 사용된다. 예를 들어, 샌드박스 환경에서 신뢰할 수 없는 코드를 실행할 때, 워치독 타이머는 CPU 사용 시간을 제한하여 서비스 거부 공격을 방지할 수 있다.[1] 또한 실시간 운영 체제에서는 작업이 할당된 시간 내에 완료되는지 감시하고, 실패 시 작업을 종료하고 오류를 보고하는 데 사용될 수 있다.

워치독 타이머는 주기적인 "킥"(또는 "쓰다듬기") 신호를 통해 시스템의 정상 작동 여부를 감시한다. 주 프로그램이 멈춤과 같은 비정상적인 상태에 빠져 정기적인 신호를 보내지 않으면(타임아웃), 예외 처리가 실행된다. 일반적으로 시스템을 리셋하여 정상 작동 상태로 되돌리지만, 전원을 차단하거나 다시 투입하는 경우도 있다.

워치독 타이머는 하드웨어에 내장될 수도 있고, 소프트웨어로 구현될 수도 있다. 하드웨어 워치독 타이머는 시스템의 확실성을 높여주지만, "하드웨어는 정상이지만 소프트웨어가 기능하지 않는" 시스템의 이상 상태를 감지하기 위해서는 소프트웨어 워치독 타이머도 필요하다.

워치독 타이머는 장애 발생 시 문제 디버깅에 필요한 정보를 저장하는 기능을 갖기도 한다. 예를 들어, 첫 번째 워치독 타이머의 타임아웃으로 정보 저장 처리가 시작되고, 이 처리가 일정 시간 내에 완료되지 않으면 두 번째 워치독 타이머가 시스템을 재시작하는 방식으로 작동한다.

또한, 워치독 타이머는 제어 시스템을 안전한 상태로 전환하는 데 사용될 수 있다. 예를 들어, 모터나 고전압 출력과 같이 잠재적으로 위험한 장치의 작동을 중지시키는 것이다.

워치독 타이머는 x-비트 카운터로 구현될 수 있으며, y MHz 클럭으로 작동하는 시스템에서 타이머가 재설정되지 않으면 2x / (y×106) 초 후에 예외 처리가 실행된다.

시스템 내부에서 인간의 불완전함(사망, 의식 불명, 부재 등)을 감지하는 유사한 기구는 데드맨 장치라고 불린다.

2. 1. 워치독 재시작 (Kicking the Dog)

워치독 타이머를 재가동하는 행위는 일반적으로 "kicking the dog"[8][9] 또는 "워치독 킥"[2][3]이라고 표현한다. 이는 보통 워치독 제어 포트에 값을 쓰거나, 레지스터의 특정 비트를 설정하여 실행한다. 마이크로컨트롤러에 통합된 워치독 타이머의 경우, 특정 기계어 명령을 실행함으로써 워치독이 작동된다. 일부 PIC 마이크로 컨트롤러 명령어 세트에 포함된 CLRWDT(클리어 워치독 타이머) 명령어가 그 예시이다.

운영 체제가 있는 컴퓨터에서는 일반적으로 장치 드라이버를 통해 워치독 재시작이 작동된다. 예를 들어, 리눅스 운영 체제에서 사용자 공간 프로그램은 /dev/watchdog에 0 문자를 쓰거나 KEEPALIVE ioctl을 호출하여 워치독 장치 드라이버와 상호 작용함으로써 워치독을 킥한다.[4] 장치 드라이버는 타임아웃 기간을 설정하고 타이머를 시작하고 정지하는 데에도 사용된다.

일부 워치독 타이머는 특정 시간 창 내에서만 킥을 허용한다. 창 밖에서 발생하는 킥은 타이머에 아무런 영향을 미치지 않으며 오류로 처리될 수 있다.


일부 워치독 타이머는 특정 시간 창 동안에만 킥을 허용한다. 창 타이밍은 일반적으로 이전 킥과 관련되거나, 워치독이 아직 킥되지 않은 경우 워치독이 활성화된 순간과 관련된다. 창은 이전 킥 이후 지연 후에 시작되고 추가 지연 후에 종료된다. 컴퓨터가 창 전이나 후에 워치독을 킥하려고 시도하면 워치독이 다시 시작되지 않으며, 일부 구현에서는 이를 오류로 처리하고 수정 조치를 트리거한다.

2. 2. 워치독 활성화

워치독 타이머는 작동 중일 때 '활성화'되었다고 하며, 유휴 상태일 때는 '비활성화'되었다고 한다. 전원이 켜지면 워치독은 무조건 활성화될 수도 있고, 초기에는 비활성화되어 있다가 외부 신호에 의해 활성화될 수도 있다. 후자의 경우, 활성화 신호는 하드웨어에 의해 자동으로 생성되거나 소프트웨어 제어하에 생성될 수 있다.

자동으로 생성될 때, 활성화 신호는 일반적으로 컴퓨터 리셋 신호에서 파생된다. 일부 시스템에서는 리셋 신호가 워치독을 활성화하는 데 직접 사용된다. 다른 시스템에서는 리셋 신호가 지연되어 리셋 후 일정 시간이 지난 후에 워치독이 활성화된다. 이 지연을 통해 워치독이 활성화되기 전에 컴퓨터가 부팅될 시간을 확보할 수 있다. 이 지연이 없으면, 워치독은 컴퓨터가 워치독을 킥하는 애플리케이션 소프트웨어를 실행하기 전에 시간 초과되어 후속 리셋을 호출하고, 시스템은 불완전한 재부팅의 무한 루프에 갇히게 된다.

2. 3. 단단계 워치독

마이크로컨트롤러에 내장되거나, 별도의 칩 또는 컴퓨터 섀시에 있는 외부 확장 카드 형태로 존재하는 가장 기본적인 형태의 워치독 타이머이다. 단일 타이머를 가지며, 시간 초과 시 일반적으로 CPU를 재설정하여 멈춘 시스템을 정상 동작으로 되돌린다. 워치독과 CPU는 클럭 신호를 공유하거나, 독립적인 클럭 신호를 가질 수 있다.

간단한 단일 단계 워치독 타이머의 블록 다이어그램. 공통 클럭은 기본적인 워치독 마이크로컨트롤러의 특징입니다.
300px

2. 4. 다단계 워치독

둘 이상의 타이머를 직렬로 연결하여 ''다단계 워치독 타이머''를 구성할 수 있다. 이때 각 타이머는 ''타이머 단계'' 혹은 단순히 ''단계''라고 불린다.[9] 예를 들어, 3단계 워치독은 아래 블록 다이어그램과 같이 구성된다. 다단계 워치독에서 첫 번째 단계만 프로세서에 의해 실행된다. 첫 번째 단계가 타임아웃되면, 시정 조치가 취해지고 다음 단계가 시작된다. 각 후속 단계가 타임아웃되면, 시정 조치가 수행되고 다음 단계가 시작된다. 마지막 단계가 타임아웃되면, 시정 조치가 취해지지만, 마지막 단계이므로 다른 단계는 시작되지 않는다. 보통 단일 단계 워치독 타이머는 컴퓨터를 재시작하는 데 사용되지만, 다단계 워치독 타이머는 순차적으로 시정 조치를 작동시키고 마지막 단계에서 컴퓨터를 재시작하게 한다.[3]

3단계 전자 워치독 타이머.
550px


다단계 워치독은 복잡한 시스템에서 오류 복구에 필요한 정보를 저장하는 시간을 확보하기 위해 사용되기도 한다. 예를 들어, 첫 번째 워치독 타이머의 타임아웃으로 정보 저장 처리가 시작되고, 이 처리가 일정 시간 내에 완료되지 않으면 두 번째 워치독 타이머가 시스템을 리셋시킨다.

2. 5. 시간 간격

워치독 타이머는 고정된 시간 간격이나 프로그래밍 가능한 시간 간격을 가질 수 있다. 일부 워치독 타이머는 몇 가지 선택 가능한 이산값 중에서 시간 간격을 설정하여 프로그래밍할 수 있다. 다른 경우에는, 시간 간격을 임의의 값으로 프로그래밍할 수 있다. 일반적으로 워치독 타이머의 시간 간격은 10밀리초에서 1분 이상까지 다양하다. 다단계 워치독에서는 각 타이머마다 고유한 시간 간격을 가질 수 있다.[1]

3. 시정 조치

워치독 타이머는 시스템 오류 발생 시 다양한 시정 조치를 취할 수 있다. 시정 조치에는 프로세서 리셋, 차단 불가능 인터럽트, 차단 가능 인터럽트, 전원 껐다 켜기, 안전 모드 상태 활성화 또는 이들의 조합이 포함된다.[9] PC 호환 기종과 같은 일부 컴퓨터는 프로세서 리셋을 작동시키기 위해 펄스 신호가 필요하다. 이러한 경우, 워치독은 내부 혹은 외부의 펄스 발생기를 활성화하여 프로세서 리셋을 작동시키며, 이는 차례로 필요한 리셋 펄스를 생성한다.[9]

임베디드 시스템 및 제어 시스템에서 워치독 타이머는 종종 안전 모드 회로를 활성화하는 데 사용된다. 안전 모드 회로가 활성화되면, 장비 손상과 피해를 방지하기 위해 모든 제어 출력이 안전한 상태(예: 모터, 히터, 높은 전압을 끔)가 된다. 2단 워치독에서 첫 번째 타이머는 안전 모드 출력을 활성화하고 두 번째 타이머 단계를 시작하는 데 사용된다. 만일 타이머가 경과하기 전에 오류가 정정되지 않으면, 두 번째 단계가 컴퓨터를 리셋시킨다.

500px


위 그림은 2단 워치독 타이머의 구성을 보여준다. 정상 작동 중 컴퓨터는 타임아웃을 방지하기 위해 정기적으로 1단계 타이머를 작동시킨다. 컴퓨터가 1단계 타이머 작동에 실패하면(하드웨어 오류 또는 프로그래밍 오류 등), 1단계는 결국 타임아웃된다. 이는 2단계 타이머를 작동시키고, 동시에 컴퓨터에 리셋이 임박했음을 알린다(차단 불가능 인터럽트를 통해). 컴퓨터는 2단계가 타임아웃될 때까지 상태 정보나 디버그 정보 등을 기록할 수 있다. 2단계가 타임아웃되면 컴퓨터는 리셋된다.

4. 오류 검출

컴퓨터 시스템은 일반적으로 시스템이 정상적으로 작동한다고 판단될 때만 워치독 타이머를 작동하도록 설계된다. 운영 체제와 여러 프로세스가 실행되는 환경에서는 단일 테스트만으로는 정상 작동을 보장하기 어려우므로, 다양한 오류 검출 테스트(예: 리소스 가용성, 프로세스 활동, 과열, 네트워크 활동 검사)를 수행하고, 모든 테스트를 통과한 경우에만 워치독을 작동시킨다.[10][11]

리눅스 운영 체제에서는 사용자 공간 워치독 데몬이 이러한 테스트를 수행하고, 실패 시 소프트웨어적인 재시작을 시도할 수 있다. 그러나 소프트웨어 재시작은 많은 오류로 인해 실패할 수 있으므로, 하드웨어 타이머를 사용하는 다단계 워치독 구성을 통해 시스템 안정성을 확보한다. 예를 들어, 2단계 워치독은 소프트웨어 재시작이 첫 번째 단계를, 하드웨어 리셋이 두 번째 단계를 구성한다.[11]

5. 응용 분야

워치독 타이머는 사람이 쉽게 접근하기 어렵거나 오류에 빠르게 대응하기 힘든 임베디드 시스템이나 기타 컴퓨터 제어 장비에서 주로 사용된다. 이러한 시스템에서는 컴퓨터가 멈춤 상태가 되었을 때 사람에게 의존하여 재부팅을 요청할 수 없으므로, 자체적으로 작동해야 한다. 예를 들어 우주 탐사선 같은 원격 임베디드 시스템은 사람이 직접 접근할 수 없기 때문에, 오류 발생 시 스스로 복구하지 못하면 영구적으로 작동 불능 상태가 될 수 있다. 로봇이나 기타 자동화 기계의 경우, 제어 컴퓨터에 오류가 발생하면 사람이 반응하기도 전에 장비가 손상되거나 부상을 입을 수 있다. 이러한 상황에서 워치독 타이머가 유용하게 사용된다.

워치독 타이머는 정상 작동하는 컴퓨터에서 소프트웨어 실행 시간을 감시하고 제한하는 데에도 사용된다. 예를 들어, 샌드박스에서 신뢰할 수 없는 코드를 실행할 때 워치독 타이머를 사용하여 코드에 할당되는 CPU 시간을 제한함으로써 서비스 거부 공격을 방지할 수 있다.[1] 실시간 운영 체제에서는 시간 제한이 있는 작업이 정해진 시간 안에 완료되는지 감시하고, 완료되지 않으면 작업을 중단시키고 실패를 보고하는 데 사용될 수 있다.

또한 제어 시스템을 안전한 상태로 전환하는 데에도 사용된다. 예를 들어 모터나 고전압 전기 출력, 기타 잠재적으로 위험한 하위 시스템을 오류가 해결될 때까지 정지시키는 것이다.

참조

[1] 논문 The Grenade Timer: Fortifying the Watchdog Timer Against Malicious Mobile Code http://www.cl.cam.ac[...] 2000
[2] 웹사이트 Watchdog Timers http://www.embedded.[...] Embedded Systems Programming 2001-10
[3] 웹사이트 Single and Multistage Watchdog Timers http://www.sensoray.[...] Sensoray 2013-09-10
[4] 웹사이트 The Linux Watchdog driver API https://www.kernel.o[...] 2021-01-20
[5] 웹사이트 Watchdog 'man' page http://linux.die.net[...] 2013-09-10
[6] 웹사이트 Linux Watchdog - General Tests http://www.sat.dunde[...] 2013-09-05
[7] 논문 The Grenade Timer: Fortifying the Watchdog Timer Against Malicious Mobile Code http://www.cl.cam.ac[...] 2000
[8] 웹인용 Watchdog Timers http://www.embedded.[...] Embedded Systems Programming 2013-02-18
[9] 웹인용 Single and Multistage Watchdog Timers http://www.sensoray.[...] Sensoray 2013-09-10
[10] 웹인용 Watchdog 'man' page http://linux.die.net[...] 2013-09-10
[11] 웹인용 Linux Watchdog - General Tests http://www.sat.dunde[...] 2013-09-10



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com